import siteInfo from './siteInfo';

// 初始化请求配置
uni.$u.http.setConfig((config: any) => {
    /* config 为默认全局配置*/
    config.baseURL = siteInfo.baseURL; /* 根域名 */
    return config
})

// 请求拦截
uni.$u.http.interceptors.request.use((config: any) => { // 可使用async await 做异步操作
    config.data = config.data || {}
    config.header.token = `${ uni.getStorageSync('token')}`

    return config
}, (config : any) => { // 可使用async await 做异步操作
    return Promise.reject(config)
})

// 响应拦截
uni.$u.http.interceptors.response.use((response: any) => { /* 对响应成功做点什么 可使用async await 做异步操作*/
    const data = response.data
    // 自定义参数
    const custom = response.config?.custom
    if (data.code == 0) {
        return data
    } else if(data.code == 9999){
        if (custom.auth !== false) {
            uni.reLaunch({
                url: "/pages/login/index",
            });
            uni.removeStorageSync('token')
        }
        return Promise.reject(response)
    } else if (data.code == 500) {
        if (custom.toast !== false) {
            uni.$u.toast(data.msg)
        }
        return Promise.reject(response)
    } else {
        // 如果没有显式定义custom的toast参数为false的话，默认对报错进行toast弹出提示
        if (custom.toast !== false) {
            uni.$u.toast(data.msg)
        }
        return Promise.reject(response)
    }
}, (response: any) => {
    // 对响应错误做点什么 （statusCode !== 200）
    return Promise.reject(response)
})